using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using FEL.COM;
using FEL.BOD;
using FEL.PAR;
using FEL.INT;
using System.Text;
using System.Collections.Generic;
using System.Web.Services;
using System.Reflection;

public partial class COM_COM_DONACION_ING : PaginaBaseFormView
{
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string ArticuloId = Request.QueryString.Get("Com_Donacion_Ing_Id");
            if (ArticuloId != null)
            {
                fvcom_donacion_ing.DefaultMode = FormViewMode.ReadOnly;
                AsignarParametrosDataSourceDeatailsView(ArticuloId);
            }
        }
        fvcom_donacion_ing.DataBound += new EventHandler(fvcom_donacion_ing_DataBound);
        fvcom_donacion_ing.ItemCommand += new FormViewCommandEventHandler(fvcom_donacion_ing_ItemCommand);
        base.Page_Load(sender, e);
        cargarBotones();
    }
    private bool _asignarDatosPredeterminados = false;

    void fvcom_donacion_ing_ItemCommand(object sender, FormViewCommandEventArgs e)
    {
        if (e.CommandName == "New")
            _asignarDatosPredeterminados = true;
    }

    protected override Type TipoObjeto
    {
        get { return typeof(global::Com_Donacion_Ing); }
    }

    protected override FormView Fv
    {
        get { return fvcom_donacion_ing; }
    }

    protected override ObjectDataSource OdsDv
    {
        get { return odsfvcom_donacion_ing; }
    }

    protected override string Contenedor
    {
        get { return "COM_DONACION_ING"; }
    }

    private void cargarBotones()
    {
        ButtonListado.Text = GetLocalResourceObject("Btn_Com_Donacion_Ing_ListadoRecursoKCG.Text").ToString();
        ButtonListado.ToolTip = GetLocalResourceObject("Btn_Com_Donacion_Ing_ListadoRecursoKCG.ToolTip").ToString();
        ButtonArticulos.Text = GetLocalResourceObject("Btn_Com_Donacion_Ing_ArticulosRecursoKCG.Text").ToString();
        ButtonArticulos.ToolTip = GetLocalResourceObject("Btn_Com_Donacion_Ing_ArticulosRecursoKCG.ToolTip").ToString();
        
    }

    void Estados_Verifica()
    {
        if (fvcom_donacion_ing.CurrentMode != FormViewMode.ReadOnly)
        {
            Estado.Visible = false;
            return;
        }
        TextBox BodegaId = (TextBox)Fv.FindControl("Bod_Bodega_Id");
        FEL.BOD.BO_Bod_Bodega_Personal valor = new BO_Bod_Bodega_Personal();
        List<Bod_Bodega_Personal> datosBodega = valor.GetByBodegaPersonal("", (Scope)Session["Scope"], BodegaId.Text);
        if (datosBodega.Count > 0)
            Estado.Visible = true;
        else
            Estado.Visible = false;
    }
    
    protected void Tipo_DataBound(object sender, EventArgs e)
    {
        DropDownList ddlTipo = (DropDownList)sender;

        ddlTipo.Attributes.Add("onchange", "checkSelectedValueTipo()");

        TextBox txtTipo = (TextBox)Fv.FindControl("Tipo");
        ddlTipo.SelectedValue = txtTipo.Text;

        if (Fv.CurrentMode == FormViewMode.Insert)
        {
            ddlTipo.SelectedValue = "GUB";
        }
    }
    protected void Motivo_DataBound(object sender, EventArgs e)
    {
        DropDownList ddlMotivo = (DropDownList)sender;

        ddlMotivo.Attributes.Add("onchange", "checkSelectedValueMotivo()");

        TextBox txtMotivo = (TextBox)Fv.FindControl("Motivo");
        ddlMotivo.SelectedValue = txtMotivo.Text;

        if (Fv.CurrentMode == FormViewMode.Insert)
        {
            ddlMotivo.SelectedValue = "DON";
        }
    } 
    void fvcom_donacion_ing_DataBound(object sender, EventArgs e)
    {
        Estados_Verifica();
        DeshabilitraBotonesEnInsert();
        if (!IsPostBack || _asignarDatosPredeterminados)
            AsignarDatosPredeterminados();  

        if (Fv.CurrentMode == FormViewMode.Insert)
        {
            TextBox Fecha = (TextBox)Fv.FindControl("Fecha");
            Fecha.Text = DateTime.Now.ToString();

            TextBox _valorTipo = (TextBox)Fv.FindControl("Tipo");
            _valorTipo.Text = "GUB";

            TextBox _valorMotivo = (TextBox)Fv.FindControl("Motivo");
            _valorMotivo.Text = "DON";

        }
        else
        {
            Estado.EstadoActualNombre = fvcom_donacion_ing.DataKey["Estado"].ToString();
            Estado.EstadoActualID = fvcom_donacion_ing.DataKey["Id"].ToString();
        }
     
    }
    private void AsignarDatosPredeterminados()
    {
        if (Fv.CurrentMode == FormViewMode.Insert)
        {
            Scope s = (Scope)Session["Scope"];

            TextBox txtmonedaId = (TextBox)Fv.FindControl("Int_Moneda_Id");
            TextBox txtmonedacodigo = (TextBox)Fv.FindControl("Int_Moneda_Codigo");
            TextBox txtmonedanombre = (TextBox)Fv.FindControl("Int_Moneda_Nombre");
            if (txtmonedacodigo.Text == "" && txtmonedanombre.Text == "")
            {
                BO_Int_Sucursal boIntSucursal = new BO_Int_Sucursal();
                List<Int_Sucursal> moneda = new List<Int_Sucursal>(1);
                try
                {
                    moneda = boIntSucursal.GetById("", s, null);
                }
                catch
                {
                }

                if (moneda.Count == 1)
                {
                    txtmonedaId.Text = moneda[0].Int_Moneda_Id;
                    txtmonedacodigo.Text = moneda[0].Int_Moneda_Codigo;
                    txtmonedanombre.Text = moneda[0].Int_Moneda_Nombre;
                }

            }
        }
    }

    private void DeshabilitraBotonesEnInsert()
    {
        if (Fv.CurrentMode == FormViewMode.Insert)
        {
            ButtonArticulos.Enabled = false;
        }
        else
            ButtonArticulos.Enabled = true;
    }
    

    [WebMethod]
    static public string[] GetBodega(string prefixText, int count)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.BOD.BO_Bod_Bodega BodBodega = new BO_Bod_Bodega();
        List<Bod_Bodega> litBod_Bodega = BodBodega.GetByLikeNombre("Nombre", s, prefixText + "%");

        List<string> opciones = new List<string>();
        for (int i = 0; i < litBod_Bodega.Count && i < count; i++)
        {
            string value = litBod_Bodega[i].Id + "||" +
                           litBod_Bodega[i].Codigo;

            opciones.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litBod_Bodega[i].Nombre, value));
        }
        return opciones.ToArray();
    }

    [WebMethod]
    static public string[] GetTipo_Identificador(string prefixText, int count)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.PAR.BO_Par_Tipo_Identificacion TipoIdenti = new BO_Par_Tipo_Identificacion();
        List<Par_Tipo_Identificacion> litTipo_Identi = TipoIdenti.GetByLikeNombre("Nombre", s, prefixText + "%");       

        List<string> opciones = new List<string>();
        for (int i = 0; i < litTipo_Identi.Count && i < count; i++)
        {
            string value = litTipo_Identi[i].Id;// +"||" +
                           
            opciones.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litTipo_Identi[i].Nombre, value));
        }
        return opciones.ToArray();
    }
    
    [WebMethod]
    static public string[] GetSocial_Numero(string prefixText, int count, string contextKey)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.PAR.BO_Par_Razon_Social RazonSocial = new BO_Par_Razon_Social();
        List<Par_Razon_Social> litRazon_Social = RazonSocial.GetByLikeNumero("Nombre", s, contextKey, prefixText + "%");
        List<string> opciones = new List<string>();
        for (int i = 0; i < litRazon_Social.Count && i < count; i++)
        {
            string value = litRazon_Social[i].Par_Tipo_Identificacion_Nombre + "||" +
                           litRazon_Social[i].Nombre + "||" +
                           litRazon_Social[i].Id; 

            opciones.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litRazon_Social[i].Numero, value));
        }
        return opciones.ToArray();
    }

    [WebMethod]
    static public string[] GetSocial_Nombre(string prefixText, int count, string contextKey)
    {
        if (count == 0) count = 10;

       Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.PAR.BO_Par_Razon_Social RazonSocial = new BO_Par_Razon_Social();
        List<Par_Razon_Social> litRazon_Social = RazonSocial.GetByLikeNombre("Nombre", s, contextKey, prefixText + "%");

        List<string> opciones = new List<string>();
        for (int i = 0; i < litRazon_Social.Count && i < count; i++)
        {
            string value = litRazon_Social[i].Par_Tipo_Identificacion_Nombre +"||" +
                           litRazon_Social[i].Numero + "||" +
                           litRazon_Social[i].Id; 

            opciones.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litRazon_Social[i].Nombre, value));
        }
        return opciones.ToArray();
    }

    [WebMethod]
    static public string[] GetMoneda(string prefixText, int count)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.INT.BO_Int_Moneda IntMoneda = new BO_Int_Moneda();
        List<Int_Moneda> litIntMoneda = IntMoneda.GetByLikeNombre("Nombre", s, prefixText + "%");

        List<string> opciones = new List<string>();
        for (int i = 0; i < litIntMoneda.Count && i < count; i++)
        {
            string value = litIntMoneda[i].Id;

            opciones.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litIntMoneda[i].Nombre, value));
        }
        return opciones.ToArray();
    }

    protected void ButtonListado_Click(object sender, EventArgs e)
    {
        TextBox ArticuloId = (TextBox)Fv.FindControl("Id");
        Response.Redirect("~/COM/COM_DONACION_ING_LISTADO.aspx?Com_Donacion_Ing_Id=" + ArticuloId.Text);

    }

    protected void ButtonArticulos_Click(object sender, EventArgs e)
    {
        TextBox ArticuloId = (TextBox)Fv.FindControl("Id");        
        Response.Redirect("~/COM/COM_DONACION_ING_DET.aspx?Com_Donacion_Ing_Id=" + ArticuloId.Text);

    }
}